// /////////////////////////////////////////////////////////////////////////////
//
// Name:            InitState.h
// Author:          Michael Bartsch (ZCCdark203)
//
// Desc :           Declaration of the InitState class.
//
// License:         Copyright (C) 2009 Michael Bartsch and Contributors
//
//                  This program is free software: you can redistribute it
//                  and/or modify it under the terms of the zlib/libpng License.
//                  See main.cpp for conditions of distribution and use.
//
// /////////////////////////////////////////////////////////////////////////////

// Include files
#ifndef __INITSTATE_H__
#define __INITSTATE_H__

// Include files
#include "../dependencies.h"
#include "../core/GameState.h"


// InitState class
//! The InitState class is the first state the GameManager initialises. This
//! class was created to separate initial state loading from the GameManager
//! code. Additionally you can also use the InitState as a template for your
//! custom states.
class InitState : public GameState
{
public:

     // Initialisation, deinitialisation and control...
     //! Constructor
     InitState();
     //! Deconstructor
     ~InitState();

     //! Initialises the InitState.
     void init();
     //! Clears the InitState.
     void clear();

     //! Updates the InitState.
     //! @param deltaTime     The time that has passed since the last update.
     void update(f32 deltaTime);
     //! Renders the InitState.
     void render();
};

#endif
